Formation-R-initiation

Formation R initiation

SSP/DEMESIS

30/01/2025

Sommaire

  • 1 Présentation
  • 2 Les objets de R

0.1 Avant-propos


Ce diaporama de formation a été rédigé dans le but d’être le support visuel des formations dispensées au MASA.

Ces formations s’adressent à des agents qui ont suivi les fondamentaux de la programmation.

0.2 Avant-propos

Elles sont données en présentiel sur une durée de 2 jours.

Champ couvert par cette formation

Ce support couvre une initiation au language R avec R-studio et une découverte de l’environnement de production du MASA.

Pour information, les thêmes abordés sont:

  • 01 - Présentation

  • 02 - Les objets de R

  • 03 - Manipulation et traitement de données

Ils sont orientés pour être utile aux agents du SSM Agriculture et se concentrent sur une utilisation de R via RStudio qui est mise à disposition des agents sur la plateforme interne Cerise basée sur RStudio Workbench.

1 Présentation

1.1 Objectifs de la formation

1.2 RStudio

Logiciel de traitement de données et analyse statistique :

  • offre un environnement interactif de développement statistique, analytique et graphique ; est doté d’un langage de programmation R ;

  • permet d’accéder à des données, de les manipuler et les analyser ;

  • S’interface avec les bases de données : Oracle, SYBASE, PostgreSQL, SQLITE…

Remplace SAS ou SPSS

Logiciel IDE : Integrated Development Environment

1.3 Pourquoi utiliser R

1.4 Comment travailler avec R au MASA

  • Depuis la plate-forme CERISE :

    • ⇒ Adresse : https://rstudio.agriculture.rie.gouv.fr

    • ⇒ PISTACHE : Pistache > Traitements statistiques et Diffusion > R > Migration SPSS et SAS vers R > Accès au WIKI Cerise - R > Accéder à Cerise

Cerise permet l’accès aux ressources déposées sur le serveur, la sauvegarde, le partage de code et le travail simultané. C’est l’usage recommandé.

  • En local sur son poste, sans intervention de Pastel

    • Non préconisée
  • Existence d’une plate-forme CERISE de Préproduction :

    • https://rstudio-pprd.agriculture.rie.gouv.fr

1.5 Fenêtres dans RStudio

1.6 La Console

⇒ EN BAS A GAUCHE

  • permet de saisir des lignes de commande

  • affiche la log et les résultats

Log : historique des commandes, messages, etc.

1.7 La Console

  • Si la première ligne de la console commence par le caractère >

→ cela signifie que R est disponible et en attente de la prochaine commande

  • Si la première ligne commence par le caractère +

→ cela signifie que R considère que la commande de la ligne précédente n’est pas terminée et qu’il « attend la suite »

Il faut alors :

- compléter la commande

ou

- sortir et recommencer en appuyant sur Echap

1.8 La Console

  • Possibilité de naviguer dans la console avec les flèches ↑ ou ↓

  • Appuyer sur Entrée pour exécuter une commande, ou cliquer sur

  • Pour effacer le contenu de la console : menu Edit > Clear console ou Ctrl+L

1.9 Visualisation

⇒ EN HAUT A GAUCHE

  • les données :

  • les scripts (programmes) :

→ Pour soumettre la ligne ou la sélection depuis le script, il faut cliquer sur Run ou Ctrl + Entrée

1.10 Entrer une ligne de commande

Deux possibilités pour entrer une ligne de commande :

  • depuis le Script ⇒ plutôt pour les commandes à conserver

  • directement dans la Console ⇒ plutôt pour les commandes de vérifications

Je besoin de … J’écris …
Trouver pour vérification le minimum d’une variable Console
Faire un tableau qui sera à refaire chaque mois Script
Créer un référentiel qu’il faudra compléter/modifier Script
Afficher une ligne d’un tableau pour vérifier l’exactitude de données Console
Afficher une ligne d’un tableau pour écrire un primeur Script

1.11 Environnement et historique

1.12 Fichiers, graphiques, aides, packages et Viewer

1.13 Organisation sous Cerise

Cerise est organisé en plusieurs répertoires :

  • 00-Espace-Personnel => espaces personnels des agents, accessible par l’agent uniquement

  • 01-Espace-de-Partage => lieu de partage général entre les différents acteurs

1.14 Organisation sous Cerise

  • 02-Espace-de-Production => plateforme de stockage des données brutes collectées, ainsi que des fichiers de données et programmes issus des traitements statistiques réalisés par l’équipe projet
  • 03-Espace-de-Diffusion => mise à disposition au sein du SSM des données issues des traitements statistiques réalisés en amont

=> Ces deux derniers espaces sont découpés par opérations statistiques

1.15 Organisation sous Cerise

  • 04-Espace-Echanges => stockage des fichiers de données à transmettre aux autres applications du SI CASSIS (par exemple Agreste) ainsi qu’aux SI des partenaires extérieurs

1.16 Cheminer sous Cerise

Sous Cerise, le chemin “~/” fait référence à son espace personnel

On peut reconstituer facilement un chemin complexe de l’arborescence Cerise en utilisant l’auto-complétion de R :

  • Je commence par taper le chemin pointant vers l’espace personnel “~/”

  • Je place le curseur après le slash, et j’appuie sur la touche tabulation du clavier : l’arborescence est proposée

  • Avec les flèches haut et bas, je sélectionne l’élément qui m’intéresse. Si je veux descendre plus bas dans l’arborescence, j’appuie sur tabulation pour que l’arborescence du dossier choisi s’affiche. Je continue jusqu’à avoir construit le chemin complet :

1.17 Répertoire de travail

  • R a par défaut un répertoire de travail. Cela signifie que si aucun chemin n’est spécifié, R va lire ou écrire les fichiers dans ce répertoire.

⇒ Sur le serveur, le répertoire de travail est l’espace personnel

  • Pour connaître le répertoire de travail : commande getwd()

  • Pour changer le répertoire de travail :

    • commande setwd(“chemin du rép souhaité”)

    • Ou dans l’onglet Files

1.18 Maafluence

Dans la page d’accueil Maafluence de Cerise, on peut trouver des liens vers divers outils utiles :

https://orion.agriculture/confluence/display/CER/CERISE_Espace+Utilisateurs

  • Une FAQ sur Cerise avec les questions récurrentes, les actualités

  • Des documents d’aide : le guide des bonnes mani’R, les fiches méthodologiques, les documents de formation

  • Le lien vers le forum R du ministère, toujours vif à répondre à toutes les questions

  • Le lien vers les actualités et les présentations du Groupe Utilisateurs R :

https://orion.agriculture/confluence/display/CER/Le+groupe+utilisateur+R

1.19 Les scripts (programmes)

Quand on programme, il est préférable d’écrire les commandes dans un fichier texte plutôt que dans la console

Avantages:

  • Sauvegarde des opérations effectuées

    • → lorsqu’on redémarre R, tout ce qui a été effectué dans la console est perdu (contrairement aux scripts qui peuvent être enregistrés)
  • Obligation de commenter son code

  • Code reproductible

    • → en exécutant à nouveau les commandes d’un script, on peut reproduire les mêmes données et les mêmes résultats
  • Possibilité de partager son code

1.20 Les scripts (programmes)

Les scripts sont des fichiers texte - ils portent l’extension .R

  • → Créer un script : File > New File > R Script ou

  • → Travailler avec un script existant : File > Open File… ou

  • → Sauvegarder un script : File > Save ou File > Save as… ou

1.21 Les scripts (programmes)

  • Pour exécuter des commandes d’un script, se positionner sur la ligne ou bien sélectionner l’ensemble des commandes à exécuter puis Ctrl+Entrée ou Code > Run Selected line(s) ou

  • Pour interrompre une exécution, on utilise le bouton « stop » de la console :

Pour exécuter tout le code d’un script préprogrammé, on utilise la fonction

source(file ="V:/FormationR/Prog/mon_fichier.R")

ou sous RStudio :
(dans ce cas, rien ne s’affiche dans la console lors de l’exécution)

1.22 Les scripts (programmes)

R est sensible à la casse

⇒ Les caractères en minuscules ou en MAJUSCULES sont différents

Les commentaires s’écrivent après le symbole #
Dans les chemins Windows, les \ doivent être remplacés par des / ou des \\

1.23 Les packages

Nombreuses possibilités avec installation de base de R …

… Mais parfois besoin de nouvelles fonctionnalités

⇒ Utilisation de packages :

  • Boîte à outils : fonctions spécifiques (et parfois des données) relatives à un domaine particulier

  • Développés et maintenus par la communauté des utilisateurs de R, et diffusés via le CRAN (Comprehensive R Archive Network = réseau de serveurs)

1.24 Les packages

  • Pour pouvoir utiliser un package, il doit être installé et chargé en mémoire :

    • un package n’a besoin d’être installé qu’une seule fois : « achat de la boîte à outils »

    • il faut le charger à chaque nouvelle session pour l’utiliser : « prendre la boite du placard »

  • En local 

Un certain nombre de packages (base) sont fournis lors de l’installation de R et n’ont pas besoin d’être installés.

  • Sur Cerise

    • Les « packages du socle commun » sont déjà installés → onglet Packages : System Library

    • Possibilité d’installer des packages par les utilisateurs → onglet Packages : User Library

  • L’installation d’un package se fait de l’une des façons suivantes :

    • En cliquant sur les menus en haut de la fenêtre : Tools → Install packages

    • Via une ligne de syntaxe dans le code : install.packages(“nom_package”)

    • Via l’onglet packages dans la fenêtre en bas à droite : bouton Install

1.25 Les packages

Charger un package (à chaque utilisation)

  • utiliser la ligne de commande library(nom_package) (conseillé pour la reproductibilité du programme)

  • cocher sur RStudio (déconseillé car si quelqu’un reprend le programme, il ne saura pas qu’il faut cocher)

RStudio: l’onglet Packages de la fenêtre en bas à droite indique les packages installés.

Les packages cochés sont ceux chargés, et donc utilisables.

Lorsqu’on essaie d’utiliser une fonction d’un package sans l’avoir chargé, un message d’erreur s’affiche

1.26 Les Raccourcis clavier utiles

En plus des raccourcis claviers usuels (Enregistrer, copier-coller, annuler l’action précédente), un certain nombre de raccourcis clavier peuvent être très utiles au quotidien dans R :

Raccourci clavier Action
Ctrl + shift + n Ouvrir un nouveau script
Ctrl + shift + m Écrire un pipe %>% ou avec la nouvelle écriture |>
Ctrl + shift + c Passer les lignes de code sélectionnées en commentaires
Ctrl + shift + r Introduire un titre de section en commentaires
Ctrl + l Vider la console
Crtl + f Ouvrir un module pour du chercher-remplacer dans le script
Ctrl + i Indenter automatiquement les lignes de code sélectionnées

1.27 EXERCICE 1: Découverte de RStudio

  1. Découverte du serveur : accéder à son répertoire personnel et créer des dossiers

Dossier pour la formation initiation avec 3 sous-dossiers :

  • un pour les données à importer : 1-Donnees
  • un pour enregistrer les programmes : 2-Programmes
  • un pour exporter les résultats : 3-Resultats
  1. Répertoire de travail

Dans quel répertoire êtes vous ? Le modifier pour que ce soit le dossier consacré à la formation

2 Les objets de R

2.1 Introduction

Quand on lance une commande (dans la console ou depuis un script), R fait le calcul (ou l’opération demandée) et affiche le résultat dans la console

  • ⇒ Pour réutiliser, appeler ou modifier un résultat dans la suite du programme : stocker le résultat dans un objet ⇒ c’est l’affectation

  • ⇒ Tout ce qui n’est pas stocké dans un objet n’est pas gardé en mémoire !

C’est comme si je voulais modifier un fichier Excel, il faut bien que je stocke mon travail !

2.2 Stockage d’objet

Affectation : affecter à un objet une valeur Opérateur : <-

Affecter une valeur à un objet le crée en même temps

Pour afficher la valeur d’un objet, il suffit de saisir son nom

2.3 Stockage d’objet

  • Possibilité de créer autant d’objets que l’on souhaite

  • Les objets créés apparaissent dans la fenêtre en haut à droite

  • La commande ls() liste tous les objets en mémoire

Si un objet est utilisé dans une opération, R le remplace par sa valeur

2.4 Stockage d’objet

  • Les objets n’ont pas de mémoire

⇒ lorsqu’on assigne une nouvelle valeur à un objet déjà existant, la valeur précédente est perdue

Comme dans un tableur : si dans une cellule je colle une valeur, la précédente est écrasée

  • Pas de lien entre les objets

⇒ lorsqu’on assigne un objet à un autre, cela ne crée pas de lien entre eux : modifier le premier objet ne va pas modifier le second

Différent du tableur: b ne change pas si a change

2.5 Gestion de la mémoire

  • rm(nom_objet) supprime l’objet nom_objet de la mémoire.

  • rm(list=ls()) supprime tous les objets en mémoire.

  • RStudio : L’icône de l’onglet Environment supprime aussi les objets. En utilisant l’affichage Grid, on peut effectuer une sélection.

  • R travaille en mémoire vive :

    • Environnement « trop plein » = impact sur les temps d’exécution et les performances de R

      • ⇒ Supprimer régulièrement de la mémoire les objets qui ne sont plus utiles
  • Cerise : mémoire partagée entre tous les utilisateurs

    • ⇒ Gérer son environnement pour ne pas impacter négativement les autres utilisateurs

2.6 Règles de nommage des objets

Les noms des objets doivent commencer par une lettre

Il est possible :

- d’utiliser des majuscules et des minuscules

- d’utiliser des chiffres, l’underscore (_) et le point (.)

Il est déconseillé :

- d’utiliser les caractères accentués

- de choisir des noms de variables non explicites, trop longs ou trop courts

- d’écraser les noms de fonctions existantes

Il est impossible :

- d’utiliser un espace

- d’utiliser certains noms réservés au système (else, for, T, F, …)

- d’écraser les noms de fonctions existantes

2.7 Les différents objets en R

En R, les données sont stockées dans différents objets :

  • Vecteur : ensemble de valeurs de même nature

  • Data.frame : concaténation de plusieurs vecteurs (=colonnes), de natures potentiellement différentes

⇒ similaire à un tableau de données d’un tableur

Avancé:

  • Matrice : ensemble de valeurs de même nature (que des nombres, que des chaînes de caractères, que des booléens…)

  • Liste : objet regroupant différents objets

2.8 Le vecteur

  • Exemple de vecteur : 1 objet (le vecteur) avec différents éléments

  • Créer un vecteur : c()

c() est une fonction qui concatène plusieurs informations de même nature

poli est un vecteur de type caractère et de longueur 5
serie est un vecteur de type numérique de longueur 6

Attention : Si des éléments sont de modes différents, R les convertit automatiquement au même mode :

Rappel: c() permet de créer un objet, pour l’utiliser il faut le stocker et donc l’affecter !

2.9 Le vecteur

  • Un vecteur peut être de quatre types :

    • numérique

    • caractère

    • logique (vrai ou faux)

    • facteur : vecteur dont les seules valeurs possibles sont les modalités d’une variable quantitative (ex : régions, départements…)

  • Valeur particulière : NA lorsqu’une variable est en valeur manquante

  • On détermine le type d’un vecteur avec mode(), on peut tester les types avec les fonctions is.numeric(), is.character(), is.logical(), is.na() etc :

2.10 Les data.frame

data.frame: plusieurs vecteurs (colonnes) de même longueur et de mode potentiellement différents 

  • ⇒ C’est ce que l’on utilise le plus souvent

  • ⇒ C’est un tableau de données, avec les observations en lignes et les variables en colonnes

2.11 Les data.frame

  • Création de 3 vecteurs de longueur 4 : nom, sexe et taille

  • La fonction data.frame( ) permet la création d’un data frame à partir de vecteurs

  • Visualisation du data frame : tab_ind ou View(tab_ind)

2.12 Les data.frame : Informations

Pour connaître les caractéristiques d’un data.frame, il y a plusieurs outils utiles :

  • str() donne la structure de la table (liste des colonnes, avec le type et les premières valeurs)

  • names() renvoie le vecteur des noms de colonnes

  • head() et tail() donnent respectivement les 6 premières et les 6 dernières lignes de la table (6 par défaut, peut être modifié)

  • nrow() et ncol() donnent respectivement le nombre de lignes et de colonnes de la table

Pour accéder aux différentes variables d’un data.frame, on utilise l’opérateur $

2.13 Exercice1 (suite) : découverte De rStudio

  1. Programmes et manipulation des données

Mise en place :

  • Créer un nouveau programme et l’enregistrer

  • Charger les librairies : dplyr, tidyr, readr

Travail sur un data.frame : iris est un jeu de données fourni avec R

  • Combien de colonnes ? De lignes ?

  • Quel est le nom des variables ?

  • Afficher les 10 premières lignes

  • Quel est le type de chacune des variables ?